% !Mode:: "TeX:UTF-8"

\chapter{结课总结}

经过三周的项目工作，每个小组成员都对软件的开发有了更深的体会。

软件开发流程是：项目启动—需求分析—概要设计—详细设计—编码—测试—软件交付—验收等，这次所有步骤都体验了一遍。其中最基础也是最重要的就是需求分析了，今后会更加注意这一点。

本次项目是基于Arduino开发的CAN总线app设计，参与了前端部分的设计，初期是基于用户需求和参考原有app利用Axure开发设计原型，然后在老师的指导下和小组成员重新调整界面布局，并且采取前期讨论并分块开发，后期共同开发设计的方式完成了本次项目的前端部分和后端部分的部分数据监听事件。

本次项目刚接触小组成员普遍存在畏难情绪，Arduino是大二下接触的，因为没有嵌入式的相关知识，所以开发初期大家普遍不知道如何动手，在老师的多次指导下大家分解任务并且进行了多次讨论，在一次次验收中逐步完善项目并且对完成项目充满了信心。项目中大多数知识都可以通过互联网找到，并且老师也在答疑中提供了不小的帮助，这是项目能够不断推进的重要原因。

在编程方面由于我们是参考了一个基本功能已实现的页面，导致后面添加新窗口或新按钮时的代码都集中到了一个类里面，最后这个类代码量达到了1000行，导致团队分工编程以及优化代码产生了巨大的困难。认识到了在以后的工作中，需要提前设计好一个优秀的工程结构。

通过这次项目，更进一步了解了协作工作以及个人知识体系方面的不足之处，开发语言Java掌握的还很不熟练，并且对于线上协作方面还不是很熟悉，团队工作的推进更多还是聚众开发，开发方式还不够灵活。在项目中个人不足的地方可以通过共同开发、他人分工等方式来缓解，这是个人开发所不能完成的。项目前后耗时近两周，9月1号基本完成APP，9月4号优化完毕，虽然没有做到尽善尽美，但是也算是为这一段时间的工作画上一个圆满的句号。
 